﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIM.Geo.BE;
using System.Data;
namespace SIM.Geo.DA
{
    public class DADireccionLabor : Base
    {
        /// <summary>
        /// Método que devuelve la lista de direccion de labor
        /// </summary>
        /// <returns></returns>
        public List<DireccionLabor> ListarDireccionLabor()
        {
            return this.Context.DireccionLabor.ToList();
        }

        /// <summary>
        /// Método para insertar un categoria de labor
        /// </summary>
        /// <param name="DireccionLabor"></param>
        /// <returns></returns>
        public int InsertarDireccionLabor(DireccionLabor direccionLabor)
        {
            this.Context.DireccionLabor.AddObject(direccionLabor);
            this.Context.SaveChanges();
            return direccionLabor.CodigoDireccion;
        }
        /// <summary>
        /// Método para modificar un categoria de labor
        /// </summary>
        /// <param name="DireccionLabor"></param>
        public void ModificarDireccionLabor(DireccionLabor direccionLabor)
        {
            this.Context.DireccionLabor.Attach(direccionLabor);
            this.Context.ObjectStateManager.ChangeObjectState(direccionLabor, EntityState.Modified);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método para eliminar categoria de labor
        /// </summary>
        /// <param name="DireccionLabor"></param>
        public void EliminarDireccionLabor(DireccionLabor direccionLabor)
        {
            this.Context.DireccionLabor.DeleteObject(direccionLabor);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método que busca por nombre categoria de labor
        /// </summary>
        /// <param name="nombre"></param>
        /// <returns></returns>
        public List<DireccionLabor> BuscarDireccionLabor(string nombre)
        {
            return this.Context.DireccionLabor.Where(x => x.Descripcion.StartsWith(nombre)).ToList();
        }
        /// <summary>
        /// Método que devuelve categoria de labor por codigo
        /// </summary>
        /// <param name="codigoDireccionLabor"></param>
        /// <returns></returns>
        public DireccionLabor ObtenerDireccionLabor(int codigoDireccionLabor)
        {
            return this.Context.DireccionLabor.Where(x => x.CodigoDireccion.Equals(codigoDireccionLabor)).FirstOrDefault();
        }
    }
}
